package com.atguigu.gmall.realtime.dws.app.function;

import com.atguigu.gmall.realtime.dws.app.util.KeywordUtil;
import org.apache.flink.table.annotation.DataTypeHint;
import org.apache.flink.table.annotation.FunctionHint;
import org.apache.flink.table.functions.TableFunction;
import org.apache.flink.types.Row;

/**
 * @Classname KeywordUDTF
 * @Description TODO
 * @Date 2024/8/17 09:40
 * @Created by shizan
 * 自定义UDTF函数
 */
//@FunctionHint 注解提供了关于 UDTF 的元数据信息。它指定了输出数据类型是一行包含单个字符串字段的数据。
@FunctionHint(output = @DataTypeHint("ROW<word STRING>"))
public class KeywordUDTF extends TableFunction<Row> {

    public void eval(String text) {
        for (String kewWord : KeywordUtil.analyze(text)) {
            collect(Row.of(kewWord));
        }

    }
}
